<?xml version="1.0"?>
<doc>
    <assembly>
        <name>TimeSeriesFramework</name>
    </assembly>
    <members>
        <member name="T:TimeSeriesFramework.ServiceHostBase">
            <summary>
            Represents the time-series framework service host.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ServiceHostBase.components">
            <summary> 
            Required designer variable.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.InitializeComponent">
            <summary> 
            Required method for Designer support - do not modify 
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ServiceHostBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ServiceHostBase"/> from specified parameters.
            </summary>
            <param name="container">Service host <see cref="T:System.ComponentModel.IContainer"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ServiceStartingHandler(System.Object,TVA.EventArgs{System.String[]})">
            <summary>
            Event handler for service starting operations.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments containing command line arguments passed into service at startup.</param>
            <remarks>
            Time-series framework uses this handler to load settings from configuration file as service is starting.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ServiceStartedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for service started operation.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments.</param>
            <remarks>
            Time-series framework uses this handler to handle initialization of system objects.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ServiceStoppingHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for service stopping operation.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments.</param>
            <remarks>
            Time-series framework uses this handler to un-wire events and dispose of system objects.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.NewMeasurementsHandler(System.Object,TVA.EventArgs{System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement}})">
            <summary>
            Event handler for distributing new measurements.
            </summary>
            <param name="sender">Event source reference to adapter that generated new measurements.</param>
            <param name="e">Event arguments containing a collection of new measurements.</param>
            <remarks>
            Time-series framework uses this handler to route new measurements to the action and output adapters.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.UnpublishedSamplesHandler(System.Object,TVA.EventArgs{System.Int32})">
            <summary>
            Event handler for monitoring unpublished samples.
            </summary>
            <param name="sender">Event source reference to adapter, typically an action adapter, that is reporting the number of unpublished data samples.</param>
            <param name="e">Event arguments containing number of samples, in seconds of data, of unpublished data in the source adapter.</param>
            <remarks>
            Time-series framework uses this handler to monitor the number of unpublished samples, in seconds of data, in action adapters.<br/>
            This method is typically called once per second.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.UnprocessedMeasurementsHandler(System.Object,TVA.EventArgs{System.Int32})">
            <summary>
            Event handler for monitoring unprocessed measurements.
            </summary>
            <param name="sender">Event source reference to adapter, typically an output adapter, that is reporting the number of unprocessed measurements.</param>
            <param name="e">Event arguments containing number of queued (i.e., unprocessed) measurements in the source adapter.</param>
            <remarks>
            Time-series framework uses this handler to monitor the number of unprocessed measurements in output adapters.<br/>
            This method is typically called once per second.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.StatusMessageHandler(System.Object,TVA.EventArgs{System.String})">
            <summary>
            Event handler for reporting status messages.
            </summary>
            <param name="sender">Event source of the status message.</param>
            <param name="e">Event arguments containing the status message to report.</param>
            <remarks>
            Time-series framework uses this handler to report adapter status messages (e.g., to a log file or console window).
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ProcessExceptionHandler(System.Object,TVA.EventArgs{System.Exception})">
            <summary>
            Event handler for processing reported exceptions.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ConsoleApplicationName">
            <summary>
            Gets the related remote console application name.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ServiceHelper">
            <summary>
            Gets access to the <see cref="T:TVA.Services.ServiceHelper"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.RemotingServer">
            <summary>
            Gets reference to the <see cref="T:TVA.Communication.TcpServer"/> based remoting server.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.AllAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.InputAdapters">
            <summary>
            Gets reference to the <see cref="!:InputAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ActionAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.OutputAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.NodeID">
            <summary>
            Gets the current node ID.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.NodeIDQueryString">
            <summary>
            Gets the current node ID formatted for use in a SQL query string based on <see cref="P:TimeSeriesFramework.ServiceHostBase.ConfigurationType"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.Configuration">
            <summary>
            Gets the currently loaded system configuration <see cref="T:System.Data.DataSet"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ConfigurationType">
            <summary>
            Gets the defined system <see cref="T:TimeSeriesFramework.ConfigurationType"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.OutputAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementations.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations.
            </summary>
            <typeparam name="T">Type of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> this collection contains.</typeparam>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IAdapterCollection">
            <summary>
            Represents the abstract interface for a collection of adapters.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IAdapter">
            <summary>
            Represents the abstract interface for any adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.Start">
            <summary>
             Starts the adapter, if it is not already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.Stop">
            <summary>
            Stops the adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line adapter status.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current adapter status.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the current thread until the adapter is <see cref="P:TimeSeriesFramework.Adapters.IAdapter.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
            <remarks>
            Implementors should create a wait handle (e.g., the <see cref="T:System.Threading.ManualResetEvent"/>) so that consumers
            can call this method and wait for the adapter intialization to complete before using the adapter.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <para>
            Implementations of this interface are expected to capture any exceptions that might be thrown by
            user code in any processing to prevent third-party code from causing an unhandled exception
            in the host.  Errors are reported via this event so host administrators will be aware of the exception.
            Any needed connection cycle to data adapter should be restarted when an exception is encountered.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </para>
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.Disposed">
            <summary>
            Event is raised when <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> is disposed.
            </summary>
            <remarks>
            If an adapter references another adapter by enumerating the <see cref="P:TimeSeriesFramework.Adapters.IAdapter.Parent"/> collection, this
            event should be monitored to release the reference.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.IAdapter.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Name">
            <summary>
            Gets or sets name of this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ID">
            <summary>
            Gets or sets the numeric ID associated with this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
            <remarks>
            Implementors only need to track this value.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.IAdapter.Start"/> for initialization.
            </summary>
            <remarks>
            Implementors should use value <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the action adapter will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the action adapter expects.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed thus far by the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.ResetStatistics">
            <summary>
            Resets the statistics of this collection.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryGetAdapterByID(System.UInt32,TimeSeriesFramework.Adapters.IAdapter@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryGetAdapterByName(System.String,TimeSeriesFramework.Adapters.IAdapter@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryCreateAdapter(System.Data.DataRow,TimeSeriesFramework.Adapters.IAdapter@)">
            <summary>
            Attempts to create an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> based on its ID.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapterCollection.DataMember">
            <summary>
            Gets or sets specific data member (e.g., table name) in <see cref="P:TimeSeriesFramework.Adapters.IAdapter.DataSource"/> used to initialize this <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.IAdapterCollection.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.IAdapter.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Initialize">
            <summary>
            Loads all <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations defined in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/>.
            </summary>
            <remarks>
            <para>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </para>
            <para>
            Note that when calling this method any existing items will be cleared allowing a "re-initialize".
            </para>
            </remarks>
            <exception cref="T:System.NullReferenceException">DataSource is null.</exception>
            <exception cref="T:System.InvalidOperationException">DataMember is null or empty.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryCreateAdapter(System.Data.DataRow,`0@)">
            <summary>
            Attempts to create an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            See <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> property for expected <see cref="T:System.Data.DataRow"/> column names.
            </remarks>
            <exception cref="T:System.NullReferenceException"><paramref name="adapterRow"/> is null.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryGetAdapterByID(System.UInt32,`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryGetAdapterByName(System.String,`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryGetAdapter``1(``0,System.Func{`0,``0,System.Boolean},`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="value"/> given <paramref name="testItem"/> function.
            </summary>
            <param name="value">Value of adapter to get.</param>
            <param name="testItem">Function delegate used to test item <paramref name="value"/>.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="value"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> based on its ID.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Start">
            <summary>
            Starts, or restarts, each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation in this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Stop">
            <summary>
            Stops each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation in this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ResetStatistics">
            <summary>
            Resets the statistics of this collection.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.WaitForInitialize(System.Int32)">
            <summary>
            This method does not wait for <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <param name="timeout">This parameter is ignored.</param>
            <returns><c>true</c> for <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ClearItems">
            <summary>
            Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InsertItem(System.Int32,`0)">
            <summary>
            Inserts an element into the <see cref="T:System.Collections.ObjectModel.Collection`1"/> the specified index.
            </summary>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <param name="item">The <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation to insert.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.SetItem(System.Int32,`0)">
            <summary>
            Assigns a new element to the <see cref="T:System.Collections.ObjectModel.Collection`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index for which item should be assigned.</param>
            <param name="item">The <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation to assign.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.RemoveItem(System.Int32)">
            <summary>
            Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InitializeItem(`0)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DisposeItem(`0)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to dispose.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Disposed">
            <summary>
            Event is raised when this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> is disposed or an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> in the collection is disposed.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Name">
            <summary>
            Gets or sets the name of this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ID">
            <summary>
            Gets or sets numeric ID associated with this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter collection has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            Updates to this property will cascade to all items in this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember">
            <summary>
            Gets or sets specific data member (e.g., table name) in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> used to <see cref="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Initialize"/> this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InitializationTimeout">
            <summary>
            Gets or sets the default adapter time that represents the maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> expects, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed thus far by each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation
            in the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Enabled">
            <summary>
            Gets or sets enabled state of this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> is read-only.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.MonitorTimerEnabled">
            <summary>
            Gets or sets flag that determines if monitor timer should be used for monitoring processed measurement statistics for the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.AutoInitialize">
            <summary>
            Gets flag that detemines if <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations are automatically initialized
            when they are added to the collection.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IOutputAdapter">
            <summary>
            Represents that abstract interface for any outgoing adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IOutputAdapter.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IOutputAdapter.RemoveMeasurements(System.Int32)">
            <summary>
            Implementations of this function should remove a range of measurements from the internal measurement queue.
            </summary>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more
            points are requested than there are points available - all points in the queue should be removed.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IOutputAdapter.UnprocessedMeasurements">
            <summary>
            Event is raised every second allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Implementations of this interface are expected to report current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IOutputAdapter.OutputIsForArchive">
            <summary>
            Returns a flag that determines if measurements sent to this <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> are
            destined for archival.
            </summary>
            <remarks>
            This property allows the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/> to calculate statistics on how
            many measurements have been archived per minute. Historians would normally set this property
            to <c>true</c>; other custom exports would set this property to <c>false</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation in
            this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.RemoveMeasurements(System.Int32)">
            <summary>
            This function removes a range of measurements from the internal measurement queues. Note that the requested
            <paramref name="total"/> will be removed from each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation in this
            <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="total">Total measurements to remove from the each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> queue.</param>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more points are
            requested than there are points available - all points in the queue will be removed.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.OnUnprocessedMeasurements(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.OutputAdapterCollection.UnprocessedMeasurements"/> event.
            </summary>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.InitializeItem(TimeSeriesFramework.Adapters.IOutputAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.DisposeItem(TimeSeriesFramework.Adapters.IOutputAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> to dispose.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.OutputAdapterCollection.UnprocessedMeasurements">
            <summary>
            Event is raised every second allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation reports its current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterCollection.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed and destined for archive thus far by each
            <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation in the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterCollection.OutputIsForArchive">
            <summary>
            Returns a flag that determines if all measurements sent to this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/> are
            destined for archival.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IInputAdapter">
            <summary>
            Represents the abstract interface for any incoming adapter.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IInputAdapter.NewMeasurements">
            <summary>
            Provides new measurements from input adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AllAdaptersCollection">
            <summary>
            Represents a collection of all <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> implementations (i.e., a collection of <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>'s).
            </summary>
            <remarks>
            This collection allows all <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> implementations to be managed as a group.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.Initialize">
            <summary>
            Initializes each <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> implementation in this <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryGetAnyAdapterByID(System.UInt32,TimeSeriesFramework.Adapters.IAdapter@,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            Attempts to get any adapter in all collections with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <param name="adapterCollection">Adapter collection reference if <paramref name="adapter"/> is found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> based on its ID from any collection.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            This method traverses all collections looking for an adapter with the specified ID.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryCreateAdapter(System.Data.DataRow,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            This method is not implemented in <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryGetAdapterByID(System.UInt32,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            This method is not implemented in <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AllAdaptersCollection.AutoInitialize">
            <summary>
            Gets flag that detemines if <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations are automatically initialized
            when they are added to the collection.
            </summary>
            <remarks>
            We don't auto-initialize collections added to the <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/> since no data source
            will be available when the collections are being created.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementKey">
            <summary>
            Represents a primary key for a measurement.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.#ctor(System.UInt32,System.String)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.MeasurementKey"/> given the specified parameters.
            </summary>
            <param name="id">Numeric ID of the measurement that this <see cref="T:TimeSeriesFramework.MeasurementKey"/> represents.</param>
            <param name="source">Source of the measurement that this <see cref="T:TimeSeriesFramework.MeasurementKey"/> represents (e.g., name of archive).</param>
            <exception cref="T:System.ArgumentNullException">source cannot be null.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.Equals(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines whether the specified <see cref="T:TimeSeriesFramework.MeasurementKey"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>
            true if the specified <see cref="T:TimeSeriesFramework.MeasurementKey"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>;
            otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not a <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.CompareTo(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.MeasurementKey"/> with another <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.MeasurementKey"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not a <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_Equality(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.MeasurementKey"/> values for equality.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_Inequality(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.MeasurementKey"/> values for inequality.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_GreaterThan(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is greater than right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_GreaterThanOrEqual(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is greater than or equal to right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_LessThan(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is less than right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_LessThanOrEqual(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is less than or equal to right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.Parse(System.String)">
            <summary>
            Converts the string representation of a <see cref="T:TimeSeriesFramework.MeasurementKey"/> into its value equivalent.
            </summary>
            <param name="value">A string representing the <see cref="T:TimeSeriesFramework.MeasurementKey"/> to convert.</param>
            <returns>A <see cref="T:TimeSeriesFramework.MeasurementKey"/> value equivalent the representation contained in <paramref name="value"/>.</returns>
            <exception cref="T:System.FormatException">The value is not in the correct format for a <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.</exception>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKey.ID">
            <summary>
            Gets or sets the numeric ID of this <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKey.Source">
            <summary>
            Gets or sets the source of this <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <remarks>
            This value is typically used to track the archive name in which the measurement, that this <see cref="T:TimeSeriesFramework.MeasurementKey"/> represents, is stored.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementKeyComparer">
            <summary>
            Represents an instance of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> for a <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKeyComparer.Equals(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines whether the specified objects are equal.
            </summary>
            <param name="x">The first <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare.</param>
            <param name="y">The second <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare.</param>
            <returns>true if the specified objects are equal; otherwise, false.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKeyComparer.GetHashCode(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns a hash code for the specified object.
            </summary>
            <param name="obj">The <see cref="T:TimeSeriesFramework.MeasurementKey"/> for which a hash code is to be returned.</param>
            <returns>A hash code for the specified object.</returns>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKeyComparer.Default">
            <summary>
            Returns the default instance of the <see cref="T:TimeSeriesFramework.MeasurementKeyComparer"/> class.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.TemporalMeasurement">
            <summary>
            Represents a time constrained measured value.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Measurement">
            <summary>
            Implementation of a basic measurement.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.IMeasurement">
            <summary>
            Represents an interface for an abstract measurement value measured by a device at an extact time.
            </summary>
            <remarks>
            This interface abstractly represents a measured value at an exact time interval.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurement.GetHashCode">
            <summary>
            Get the hash code for the <see cref="T:TimeSeriesFramework.IMeasurement"/>.<see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <returns>Hash code for the <see cref="T:TimeSeriesFramework.IMeasurement"/>.<see cref="T:TimeSeriesFramework.MeasurementKey"/>.</returns>
            <remarks>Implementors should always return the hash code based on <see cref="T:TimeSeriesFramework.MeasurementKey"/> of measurement.</remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.ID">
            <summary>
            Gets or sets the numeric ID of this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
            <remarks>
            <para>In most implementations, this will be a required field.</para>
            <para>Note that this field, in addition to Source, typically creates the primary key for a <see cref="T:TimeSeriesFramework.IMeasurement"/>.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Source">
            <summary>
            Gets or sets the source of this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
            <remarks>
            <para>In most implementations, this will be a required field.</para>
            <para>Note that this field, in addition to ID, typically creates the primary key for a <see cref="T:TimeSeriesFramework.IMeasurement"/>.</para>
            <para>This value is typically used to track the archive name in which <see cref="T:TimeSeriesFramework.IMeasurement"/> is stored.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Key">
            <summary>
            Returns the primary key of this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.SignalID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based signal ID of this <see cref="T:TimeSeriesFramework.IMeasurement"/>, if available.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.TagName">
            <summary>
            Gets or sets the text based tag name of this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Value">
            <summary>
            Gets or sets the raw value of this <see cref="T:TimeSeriesFramework.IMeasurement"/> (i.e., the numeric value that is not offset by <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/> and <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/>).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.AdjustedValue">
            <summary>
            Gets the adjusted numeric value of this <see cref="T:TimeSeriesFramework.IMeasurement"/>, taking into account the specified <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/> and <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/> offsets.
            </summary>
            <remarks>
            <para>Implementors need to account for <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/> and <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/> in return value, e.g.:<br/>
            <c>return <see cref="P:TimeSeriesFramework.IMeasurement.Value"/> * <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/> + <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/></c>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Adder">
            <summary>
            Defines an offset to add to the <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementors should make sure this value defaults to zero.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Multiplier">
            <summary>
            Defines a mulplicative offset to apply to the <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementors should make sure this value defaults to one.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Timestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of the data represented by this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.ValueQualityIsGood">
            <summary>
            Gets or sets a boolean value that determines if the quality of the numeric value of this <see cref="T:TimeSeriesFramework.IMeasurement"/> is good.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.TimestampQualityIsGood">
            <summary>
            Gets or sets a boolean value that determines if the quality of the timestamp of this <see cref="T:TimeSeriesFramework.IMeasurement"/> is good.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.IsDiscarded">
            <summary>
            Gets or sets a boolean value that determines if this <see cref="T:TimeSeriesFramework.IMeasurement"/> has been discarded during sorting.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.MeasurementValueFilter">
            <summary>
            Gets or sets function used to apply a downsampling filter over a sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> using default settings.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor(System.UInt32,System.String)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> given the specified parameters.
            </summary>
            <param name="id">Numeric ID of the new measurement.</param>
            <param name="source">Source name of the new measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor(System.Guid)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> based signal ID of the new measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor(System.UInt32,System.String,System.Double,TVA.Ticks)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> given the specified parameters.
            </summary>
            <param name="id">Numeric ID of the new measurement.</param>
            <param name="source">Source name of the new measurement.</param>
            <param name="value">Value of the new measurement.</param>
            <param name="timestamp">Timestamp, in ticks, of the new measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor(System.Guid,System.Double,TVA.Ticks)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> based signal ID of the new measurement.</param>
            <param name="value">Value of the new measurement.</param>
            <param name="timestamp">Timestamp, in ticks, of the new measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor(System.UInt32,System.String,System.String,System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> given the specified parameters.
            </summary>
            <param name="id">Numeric ID of the new measurement.</param>
            <param name="source">Source name of the new measurement.</param>
            <param name="tagName">Text based tag name of the new measurement.</param>
            <param name="adder">Defined adder to apply to the new measurement.</param>
            <param name="multiplier">Defined multiplier to apply to the new measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor(System.UInt32,System.String,System.Guid,System.Double,System.Double,System.Double,TVA.Ticks)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> given the specified parameters.
            </summary>
            <param name="id">Numeric ID of the new measurement.</param>
            <param name="source">Source name of the new measurement.</param>
            <param name="signalID"><see cref="T:System.Guid"/> based signal ID of the new measurement.</param>
            <param name="value">Value of the new measurement.</param>
            <param name="adder">Defined adder to apply to the new measurement.</param>
            <param name="multiplier">Defined multiplier to apply to the new measurement.</param>
            <param name="timestamp">Timestamp, in ticks, of the new measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.Measurement"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Equals(TimeSeriesFramework.IMeasurement)">
            <summary>
            Determines whether the specified <see cref="T:TimeSeriesFramework.IMeasurement"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.IMeasurement"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>
            true if the specified <see cref="T:TimeSeriesFramework.IMeasurement"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>;
            otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:TimeSeriesFramework.IMeasurement"/>.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.CompareTo(TimeSeriesFramework.IMeasurement)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Measurement"/> with an <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.IMeasurement"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <remarks>Measurement implementations should compare by hash code.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Measurement"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:TimeSeriesFramework.IMeasurement"/>.</exception>
            <remarks>Measurement implementations should compare by hash code.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.Measurement"/>.</returns>
            <remarks>Hash code based on value of measurement.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_Equality(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Measurement"/> values for equality.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_Inequality(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Measurement"/> values for inequality.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_GreaterThan(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is greater than right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_GreaterThanOrEqual(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is greater than or equal to right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_LessThan(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is less than right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_LessThanOrEqual(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is less than or equal to right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Clone(TimeSeriesFramework.IMeasurement)">
            <summary>
            Creates a copy of the specified measurement.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <returns>A copy of the <see cref="T:TimeSeriesFramework.Measurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Clone(TimeSeriesFramework.IMeasurement,TVA.Ticks)">
            <summary>
            Creates a copy of the specified measurement using a new timestamp.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <returns>A copy of the <see cref="T:TimeSeriesFramework.Measurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Clone(TimeSeriesFramework.IMeasurement,System.Double,TVA.Ticks)">
            <summary>
            Creates a copy of the specified measurement using a new value and timestamp.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="value">New value for cloned measurement.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <returns>A copy of the <see cref="T:TimeSeriesFramework.Measurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.ToString(TimeSeriesFramework.IMeasurement)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the specified <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> to convert to a <see cref="T:System.String"/> representation.</param>
            <returns>A <see cref="T:System.String"/> that represents the specified <see cref="T:TimeSeriesFramework.IMeasurement"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.AverageValueFilter(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Calculates an average of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values over which to run calculation.</param>
            <returns>Average of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.MajorityValueFilter(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Returns the majority value of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values over which to run calculation.</param>
            <returns>Majority value of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.ID">
            <summary>
            Gets or sets the numeric ID of this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <remarks>
            <para>In most implementations, this will be a required field.</para>
            <para>Note that this field, in addition to <see cref="P:TimeSeriesFramework.Measurement.Source"/>, typically creates the primary key for a <see cref="T:TimeSeriesFramework.Measurement"/>.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Source">
            <summary>
            Gets or sets the source of this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <remarks>
            <para>In most implementations, this will be a required field.</para>
            <para>Note that this field, in addition to <see cref="P:TimeSeriesFramework.Measurement.ID"/>, typically creates the primary key for a <see cref="T:TimeSeriesFramework.Measurement"/>.</para>
            <para>This value is typically used to track the archive name in which measurement is stored.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Key">
            <summary>
            Gets the primary key (a <see cref="T:TimeSeriesFramework.MeasurementKey"/>, of this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.SignalID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based signal ID of this <see cref="T:TimeSeriesFramework.Measurement"/>, if available.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.TagName">
            <summary>
            Gets or sets the text based tag name of this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Value">
            <summary>
            Gets or sets the raw measurement value that is not offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/>.
            </summary>
            <returns>Raw value of this <see cref="T:TimeSeriesFramework.Measurement"/> (i.e., value that is not offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/>).</returns>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.AdjustedValue">
            <summary>
            Gets the adjusted numeric value of this measurement, taking into account the specified <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/> offsets.
            </summary>
            <remarks>
            Note that returned value will be offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/>.
            </remarks>
            <returns><see cref="P:TimeSeriesFramework.Measurement.Value"/> offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/> (i.e., <c><see cref="P:TimeSeriesFramework.Measurement.Value"/> * <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/> + <see cref="P:TimeSeriesFramework.Measurement.Adder"/></c>).</returns>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Adder">
            <summary>
            Gets or sets an offset to add to the measurement value. This defaults to 0.0.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Multiplier">
            <summary>
            Defines a mulplicative offset to apply to the measurement value. This defaults to 1.0.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Timestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of the data represented by this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.ValueQualityIsGood">
            <summary>
            Gets or sets a boolean value that determines if the quality of the numeric value of this <see cref="T:TimeSeriesFramework.Measurement"/> is good.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.TimestampQualityIsGood">
            <summary>
            Gets or sets a boolean value that determines if the quality of the timestamp of this <see cref="T:TimeSeriesFramework.Measurement"/> is good.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.IsDiscarded">
            <summary>
            Gets or sets a boolean value that determines if this <see cref="T:TimeSeriesFramework.Measurement"/> has been discarded during sorting.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.MeasurementValueFilter">
            <summary>
            Gets or sets function used to apply a downsampling filter over a sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.#ctor(System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> given the specified parameters.
            </summary>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.#ctor(System.UInt32,System.String,System.Double,TVA.Ticks,System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> given the specified parameters.
            </summary>
            <param name="id">Numeric ID of the <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</param>
            <param name="source">Source of the <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>(e.g., name of archive).</param>
            <param name="value">Value of the <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</param>
            <param name="timestamp">Timestamp of the <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</param>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.GetAdjustedValue(TVA.Ticks)">
            <summary>Gets numeric adjusted value of this <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>, constrained within specified ticks.</summary>
            <remarks>
            <para>Operation will return NaN if ticks are outside of time deviation tolerances.</para>
            <para>Note that returned value will be offset by adder and multiplier.</para>
            </remarks>
            <param name="timestamp">Timestamp used to constrain <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <returns>Value offset by adder and multipler (i.e., Value * Multiplier + Adder).</returns>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.GetValue(TVA.Ticks)">
            <summary>Gets numeric value of this <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>, constrained within specified ticks.</summary>
            <remarks>
            <para>Operation will return NaN if ticks are outside of time deviation tolerances.</para>
            </remarks>
            <param name="timestamp">Timestamp, in ticks, used to constrain <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <returns>Raw value of this measurement (i.e., value that is not offset by adder and multiplier).</returns>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.SetValue(TVA.Ticks,System.Double)">
            <summary>Sets numeric value and timestamp, as ticks, of this <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</summary>
            <remarks>
            <para>Operation will only store a value that is newer than the cached value.</para>
            </remarks>
            <param name="timestamp">New timestamp, in ticks, for <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</param>
            <param name="value">New value for <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>, only stored if <paramref name="timestamp"/> are newer than current <see cref="T:TVA.Ticks"/>.</param>
        </member>
        <member name="P:TimeSeriesFramework.TemporalMeasurement.LagTime">
            <summary>Allowed past time deviation tolerance in seconds (can be subsecond).</summary>
            <remarks>
            <para>This value defines the time sensitivity to past measurement timestamps.</para>
            <para>Defined the number of seconds allowed before assuming a measurement timestamp is too old.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.TemporalMeasurement.LeadTime">
            <summary>Allowed future time deviation tolerance in seconds (can be subsecond).</summary>
            <remarks>
            <para>This value defines the time sensitivity to future measurement timestamps.</para>
            <para>Defined the number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="T:TimeSeriesFramework.Frame">
            <summary>
            Implementation of a basic <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            A frame represents a collection of measurements at a given time.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.IFrame">
            <summary>
            Abstract frame interface representing a collection of measurements at an exact moment in time.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.Measurements">
            <summary>
            Keyed measurements in this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            Represents a dictionary of measurements, keyed by <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.Published">
            <summary>
            Gets or sets published state of this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.SortedMeasurements">
            <summary>
            Gets or sets total number of measurements that have been sorted into this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            If this property has not been assigned a value, implementors should return measurement count.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.Timestamp">
            <summary>
            Gets or sets exact timestamp, in <see cref="T:TVA.Ticks"/>, of the data represented in this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.LastSortedMeasurement">
            <summary>
            Gets ot sets reference to last <see cref="T:TimeSeriesFramework.IMeasurement"/> that was sorted into this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            <para>This value is used to help monitor slow moving measurements that are being sorted into the <see cref="T:TimeSeriesFramework.IFrame"/>.</para>
            <para>Implementors need only track the value.</para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.#ctor(TVA.Ticks)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Frame"/> given the specified parameters.
            </summary>
            <param name="timestamp">Timestamp, in ticks, for this <see cref="T:TimeSeriesFramework.Frame"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Frame.#ctor(TVA.Ticks,System.Collections.Generic.IDictionary{TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.IMeasurement})">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Frame"/> given the specified parameters.
            </summary>
            <param name="timestamp">Timestamp, in ticks, for this <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <param name="measurements">Initial set of measurements to load into the <see cref="T:TimeSeriesFramework.Frame"/>, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.Frame.Clone">
            <summary>
            Create a copy of this <see cref="T:TimeSeriesFramework.Frame"/> and its measurements.
            </summary>
            <remarks>
            The measurement dictionary of this <see cref="T:TimeSeriesFramework.Frame"/> is synclocked during copy.
            </remarks>
            <returns>A cloned <see cref="T:TimeSeriesFramework.Frame"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.Equals(TimeSeriesFramework.IFrame)">
            <summary>
            Determines whether the specified <see cref="T:TimeSeriesFramework.IFrame"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.IFrame"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>
            true if the specified <see cref="T:TimeSeriesFramework.IFrame"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>;
            otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:TimeSeriesFramework.IFrame"/>.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Frame.CompareTo(TimeSeriesFramework.IFrame)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Frame"/> with an <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.IFrame"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <remarks>This implementation of a basic frame compares itself by timestamp.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Frame"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:TimeSeriesFramework.IFrame"/>.</exception>
            <remarks>This implementation of a basic frame compares itself by timestamp.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.Frame"/>.</returns>
            <remarks>Hash code based on timestamp of frame.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_Equality(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Frame"/> timestamps for equality.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_Inequality(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Frame"/> timestamps for inequality.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_GreaterThan(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is greater than right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_GreaterThanOrEqual(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is greater than or equal to right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_LessThan(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is less than right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_LessThanOrEqual(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is less than or equal to right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Frame.Measurements">
            <summary>
            Keyed measurements in this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Frame.Published">
            <summary>
            Gets or sets published state of this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Frame.SortedMeasurements">
            <summary>
            Gets or sets total number of measurements that have been sorted into this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <remarks>
            If this property has not been assigned a value, the property will return measurement count.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Frame.Timestamp">
            <summary>
            Gets or sets exact timestamp, in <see cref="T:TVA.Ticks"/>, of the data represented in this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Frame.LastSortedMeasurement">
            <summary>
            Gets or sets reference to last measurement that was sorted into this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.ConfigurationType">
            <summary>
            Configuration data source type enumeration.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ConfigurationType.Database">
            <summary>
            Configuration source is a database.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ConfigurationType.WebService">
            <summary>
            Configuration source is a webservice.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ConfigurationType.XmlFile">
            <summary>
            Configuration source is a XML file.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.DataOperationFunction">
            <summary>
            Defines a method signature for a bootstrap data source operation.
            </summary>
            <param name="connection">Connection to database.</param>
            <param name="adapterType">Adapter type for database connection.</param>
            <param name="nodeIDQueryString">Formatted node ID guid query string.</param>
            <param name="statusMessage">Reference to host status message function.</param>
            <param name="processException">Reference to host process exception function.</param>
        </member>
        <member name="T:TimeSeriesFramework.ServiceClientBase">
            <summary>
            Represents a client that can remotely access the time-series framework service host.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ServiceClientBase.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.Dispose(System.Boolean)">
            <summary> 
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.SerializableMeasurement">
            <summary>
            Represents a <see cref="T:TimeSeriesFramework.IMeasurement"/> that can be serialized.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.SerializableMeasurement.FixedLength">
            <summary>
            Fixed byte length of a <see cref="T:TimeSeriesFramework.SerializableMeasurement"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.SerializableMeasurement.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.SerializableMeasurement"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.SerializableMeasurement.#ctor(TimeSeriesFramework.IMeasurement)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.SerializableMeasurement"/> from source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <param name="m">Source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
        </member>
        <member name="M:TimeSeriesFramework.SerializableMeasurement.Initialize(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.SerializableMeasurement"/> from the specified binary image.
            </summary>
            <param name="buffer">Binary image to be used for initialization.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to be used for initialization.</param>
            <param name="count">Valid number of bytes within binary image.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
        </member>
        <member name="P:TimeSeriesFramework.SerializableMeasurement.BinaryImage">
            <summary>
            Gets the binary image of the <see cref="T:TimeSeriesFramework.SerializableMeasurement"/>.
            </summary>
            <remarks>
            <para>
            Field:      Bytes:   <br/>
            ---------   ---------<br/>
              ID            4    <br/>
            SourceLen       4    <br/>
             Source     SourceLen<br/>
            SignalID       16    <br/>
             TagLen         4    <br/>
              Tag        TagLen  <br/>
              Value         8    <br/>
              Adder         8    <br/>
            Multipler       8    <br/>
              Ticks         8    <br/>
              Flags         1    <br/>
            </para>
            <para>
            Constant Length = 61<br/>
            Variable Length = SourceLen + TagLen
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.SerializableMeasurement.BinaryLength">
            <summary>
            Gets the length of the <see cref="P:TimeSeriesFramework.SerializableMeasurement.BinaryImage"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.DataSubscriber">
            <summary>
            Represents a data subscribing client that will connect to a data publisher for a data subscription.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.InputAdapterBase">
            <summary>
            Represents the base class for any incoming input adapter.
            </summary>
            <remarks>
            Derived classes are expected to call <see cref="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})"/> when new measurements are received.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AdapterBase">
            <summary>
            Represents the base class for any adapter.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Adapters.AdapterBase.DefaultInitializationTimeout">
            <summary>
            Default initialization timeout.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Initialize">
            <summary>
            Intializes <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Stop">
            <summary>
            Stops the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>		
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.SetInitializedState(System.Boolean)">
            <summary>
            Manually sets the intialized state of the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="initialized">Desired initialized state.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.IsInputMeasurement(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys"/>.
            </summary>
            <param name="item">Primary key of measurement to find.</param>
            <returns>true if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the <see cref="P:System.Threading.Thread.CurrentThread"/> until the adapter is <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.IncrementProcessedMeasurements(System.Int64)">
            <summary>
            Safely increments the total processed measurements.
            </summary>
            <param name="totalAdded"></param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.ParseInputMeasurementKeys(System.Data.DataSet,System.String)">
            <summary>
            Parses input measurement keys from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to filter measurments when user specifies a FILTER expression to define input measurement keys.</param>
            <param name="value">Value of setting used to define input measurement keys, typically "inputMeasurementKeys".</param>
            <returns>User selected input measurement keys.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.ParseOutputMeasurements(System.Data.DataSet,System.String)">
            <summary>
            Parses output measurements from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to filter measurments when user specifies a FILTER expression to define output measurements.</param>
            <param name="value">Value of setting used to define output measurements, typically "outputMeasurements".</param>
            <returns>User selected output measurements.</returns>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.Disposed">
            <summary>
            Event is raised when <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> is disposed.
            </summary>
            <remarks>
            If an adapter references another adapter by enumerating the <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.Parent"/> collection, this
            event should be monitored to release the reference.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Name">
            <summary>
            Gets or sets the name of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Derived classes should provide a name for the adapter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ID">
            <summary>
            Gets or sets numeric ID associated with this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            <para>
            Example connection string using manually defined measurements:<br/>
            <c>inputMeasurementKeys={P1:1245;P1:1247;P2:1335};</c><br/>
            <c>outputMeasurements={P3:1345,60.0,1.0;P3:1346;P3:1347}</c><br/>
            When defined manually, elements in key:<br/>
            * inputMeasurementKeys are defined as "ArchiveSource:PointID"<br/>
            * outputMeasurements are defined as "ArchiveSource:PointID,Adder,Multiplier", the adder and multiplier are optional
            defaulting to 0.0 and 1.0 respectively.
            <br/>
            </para>
            <para>
            Example connection string using measurements defined in a <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.DataSource"/> table:<br/>
            <c>inputMeasurementKeys={FILTER ActiveMeasurements WHERE Company='TVA' AND SignalType='FREQ' ORDER BY ID};</c><br/>
            <c>outputMeasurements={FILTER ActiveMeasurements WHERE SignalType IN ('IPHA','VPHA') AND Phase='+'}</c><br/>
            <br/>
            Basic filtering syntax is as follows:<br/>
            <br/>
                {FILTER &lt;TableName&gt; WHERE &lt;Expression&gt; [ORDER BY &lt;SortField&gt;]}<br/>
            <br/>
            Source tables are expected to have at least the following fields:<br/>
            <list type="table">
                <listheader>
                    <term>Name</term>
                    <term>Type</term>
                    <description>Description.</description>
                </listheader>
                <item>
                    <term>ID</term>
                    <term>NVARCHAR</term>
                    <description>Measurement key formatted as: ArchiveSource:PointID.</description>
                </item>
                <item>
                    <term>PointTag</term>
                    <term>NVARCHAR</term>
                    <description>Point tag of measurement.</description>
                </item>
                <item>
                    <term>Adder</term>
                    <term>FLOAT</term>
                    <description>Adder to apply to value, if any (default to 0.0).</description>
                </item>
                <item>
                    <term>Multiplier</term>
                    <term>FLOAT</term>
                    <description>Multipler to apply to value, if any (default to 1.0).</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.AdapterBase.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> expects, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements handled thus far by the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.MeasurementReportingInterval">
            <summary>
            Gets or sets the measurement reporting interval.
            </summary>
            <remarks>
            This is used to determined how many measurements should be processed before reporting status.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Enabled">
            <summary>
            Gets or sets enabled state of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Base class simply starts or stops <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> based on flag value. Derived classes should
            extend this if needed to enable or disable operational state of the adapter based on flag value.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.StartTime">
            <summary>
            Gets the UTC time this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> was started.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.StopTime">
            <summary>
            Gets the UTC time this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> was stopped.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the concentrator has been active.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Status">
            <summary>
            Gets the status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Start">
            <summary>
            Starts this <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> and initiates connection cycle to data input source.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.AttemptConnection">
            <summary>
            Attempts to connect to data input source.
            </summary>
            <remarks>
            Derived classes should attempt connection to data input source here.  Any exceptions thrown
            by this implementation will result in restart of the connection cycle.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnConnected">
            <summary>
            Called when data input source connection is established.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.InputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Stop">
            <summary>
            Stops this <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> and disconnects from data input source.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.AttemptDisconnection">
            <summary>
            Attempts to disconnect from data input source.
            </summary>
            <remarks>
            Derived classes should attempt disconnect from data input source here.  Any exceptions thrown
            by this implementation will be reported to host via <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnDisconnected">
            <summary>
            Called when data input source is disconnected.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.InputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.InputAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.InputAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from input adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.IsConnected">
            <summary>
            Gets flag that determines if <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> is connected.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.UseAsyncConnect">
            <summary>
            Gets flag that determines if the data input connects asynchronously.
            </summary>
            <remarks>
            Derived classes should return true when data input source is connects asynchronously, otherwise return false.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.ConnectionAttemptInterval">
            <summary>
            Gets or sets the connection attempt interval, in milliseconds, for the data input source.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.SynchronizedSubscribe(System.Boolean,System.Int32,System.Double,System.Double,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int64,System.Boolean,TimeSeriesFramework.DownsamplingMethod)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a synchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>false</c> for bandwidth conservation.</param>
            <param name="framesPerSecond">The desired number of data frames per second.</param>
            <param name="lagTime">Allowed past time deviation tolerance, in seconds (can be subsecond).</param>
            <param name="leadTime">Allowed future time deviation tolerance, in seconds (can be subsecond).</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="useLocalClockAsRealTime">Boolean value that determines whether or not to use the local clock time as real time.</param>
            <param name="ignoreBadTimestamps">Boolean value that determines if bad timestamps (as determined by measurement's timestamp quality) should be ignored when sorting measurements.</param>
            <param name="allowSortsByArrival"> Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps to be sorted by arrival time.</param>
            <param name="timeResolution">Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.</param>
            <param name="allowPreemptivePublishing">Gets or sets flag that allows system to preemptively publish frames assuming all expected measurements have arrived.</param>
            <param name="downsamplingMethod">Gets the total number of downsampled measurements processed by the concentrator.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.UnsynchronizedSubscribe(System.Boolean,System.String)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for an unsynchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>false</c> for bandwidth conservation.</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Subscribe(System.Boolean,System.Boolean,System.String)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a set of data points.
            </summary>
            <param name="synchronized">Boolean value that determines if subscription should be synchronized.</param>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>false</c> for bandwidth conservation.</param>
            <param name="connectionString">Connection string that defines required and optional parameters for the subscription.</param>
            <returns><c>true</c> if subscribe was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Unsubscribe">
            <summary>
            Unsubscribes from a data publisher.
            </summary>
            <returns><c>true</c> if unsubscribe was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.SendServerCommand(TimeSeriesFramework.Transport.ServerCommand,System.Byte[])">
            <summary>
            Sends a server command to the publisher connection.
            </summary>
            <param name="commandCode"><see cref="T:TimeSeriesFramework.Transport.ServerCommand"/> to send.</param>
            <param name="data">Command data to send.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.AttemptConnection">
            <summary>
            Attempts to connect to this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.AttemptDisconnection">
            <summary>
            Attempts to disconnect from this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
            <param name="maxLength">Maximum length of the status message.</param>
            <returns>Text of the status message.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.InterpretResponseMessage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Get message from string based response.
            </summary>
            <param name="buffer">Response buffer.</param>
            <param name="startIndex">Start index of response message.</param>
            <param name="length">Length of response message.</param>
            <returns>Decoded response string.</returns>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionEstablished">
            <summary>
            Occurs when client connection to the data publication server is established.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionTerminated">
            <summary>
            Occurs when client connection to the data publication server is terminated.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.UseAsyncConnect">
            <summary>
            Gets a flag that determines if this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> uses an asynchronous connection.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.Status">
            <summary>
            Gets the status of this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.SerializableMeasurementSlim">
            <summary>
            Represents a <see cref="T:TimeSeriesFramework.IMeasurement"/> that can be serialized with minimal size.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.SerializableMeasurementSlim.FixedLength">
            <summary>
            Fixed byte length of a <see cref="T:TimeSeriesFramework.SerializableMeasurementSlim"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.SerializableMeasurementSlim.#ctor(System.Boolean)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.SerializableMeasurementSlim"/>.
            </summary>
            <param name="includeTime">Determines if time is included in binary images.</param>
        </member>
        <member name="M:TimeSeriesFramework.SerializableMeasurementSlim.#ctor(TimeSeriesFramework.IMeasurement,System.Boolean)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.SerializableMeasurementSlim"/> from source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <param name="m">Source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <param name="includeTime">Determines if time is included in binary images.</param>
        </member>
        <member name="M:TimeSeriesFramework.SerializableMeasurementSlim.Initialize(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.SerializableMeasurementSlim"/> from the specified binary image.
            </summary>
            <param name="buffer">Binary image to be used for initialization.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to be used for initialization.</param>
            <param name="count">Valid number of bytes within binary image.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
        </member>
        <member name="P:TimeSeriesFramework.SerializableMeasurementSlim.IncludeTime">
            <summary>
            Gets or sets flags that determines if time is included in binary images.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.SerializableMeasurementSlim.BinaryImage">
            <summary>
            Gets the binary image of the <see cref="T:TimeSeriesFramework.SerializableMeasurementSlim"/>.
            </summary>
            <remarks>
            <para>
            Field:     Bytes: <br/>
            --------   -------<br/>
            SignalID     16   <br/>
             Value        8   <br/>
             [Time]       8?  <br/>
             Flags        1   <br/>
            </para>
            <para>
            Constant Length = 25<br/>
            Variable Length = 8 (time is optional)
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.SerializableMeasurementSlim.BinaryLength">
            <summary>
            Gets the length of the <see cref="P:TimeSeriesFramework.SerializableMeasurementSlim.BinaryImage"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.OutputAdapterBase">
            <summary>
            Represents that base class for any outgoing data stream.
            </summary>
            <remarks>
            This base class acts as a measurement queue so that output adapters can temporarily go
            offline without losing any measurements to be processed. Derived classes are expected to
            override <see cref="M:TimeSeriesFramework.Adapters.OutputAdapterBase.ProcessMeasurements(TimeSeriesFramework.IMeasurement[])"/> to handle queued measurements.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Start">
            <summary>
            Starts this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> and initiates connection cycle to data output stream.
            </summary>		
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.AttemptConnection">
            <summary>
            Attempts to connect to data output stream.
            </summary>
            <remarks>
            Derived classes should attempt connection to data output stream here.  Any exceptions thrown
            by this implementation will result in restart of the connection cycle.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnConnected">
            <summary>
            Called when data input source connection is established.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.OutputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Stop">
            <summary>
            Stops this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> and disconnects from data output stream.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.AttemptDisconnection">
            <summary>
            Attempts to disconnect from data output stream.
            </summary>
            <remarks>
            Derived classes should attempt disconnect from data output stream here.  Any exceptions thrown
            by this implementation will be reported to host via <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnDisconnected">
            <summary>
            Called when data input source is disconnected.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.OutputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.ProcessMeasurements(TimeSeriesFramework.IMeasurement[])">
            <summary>
            Serializes measurements to data output stream.
            </summary>
            <remarks>
            <para>
            Derived classes must implement this function to process queued measurements.
            For example, this function would "archive" measurements if output adapter is for a historian.
            </para>
            <para>
            It is important that consumers "resume" connection cycle if processing fails (e.g., connection
            to archive is lost). Here is an example:
            <example>
            <code>
            protected virtual void ProcessMeasurements(IMeasurement[] measurements)
            {
                try
                {
                    // Process measurements...
                    foreach (IMeasurement measurement in measurement)
                    {
                        ArchiveMeasurement(measurement);
                    }
                }
                catch (Exception)
                {                
                    // So long as user hasn't requested to stop, restart connection cycle
                    if (Enabled)
                        Start();
                }
            }
            </code>
            </example>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.RemoveMeasurements(System.Int32)">
            <summary>
            This removes a range of measurements from the internal measurement queue.
            </summary>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more points are
            requested than there are points available - all points in the queue will be removed.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Flush">
            <summary>
            Blocks the current thread, if the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> is connected, until all items
            in <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> queue are processed, and then stops processing.
            </summary>
            <remarks>
            <para>
            It is possible for items to be added to the queue while the flush is executing. The flush will continue to
            process items as quickly as possible until the queue is empty. Unless the user stops queueing items to be
            processed, the flush call may never return (not a happy situtation on shutdown).
            </para>
            <para>
            The <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> does not clear queue prior to destruction. If the user fails to call
            this method before the class is destructed, there may be items that remain unprocessed in the queue.
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnUnprocessedMeasurements(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.OutputAdapterBase.UnprocessedMeasurements"/> event.
            </summary>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.OutputAdapterBase.UnprocessedMeasurements">
            <summary>
            Event is raised every second allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Base class reports current queue size of unprocessed measurements so that if queue size reaches
            an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.RequeueOnException">
            <summary>
            Gets or sets whether or not to automatically place measurements back into the processing
            queue if an exception occurs while processing.  Defaults to false.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.SourceIDs">
            <summary>
            Gets or sets <see cref="T:TimeSeriesFramework.IMeasurement"/> source ID's used to filter output measurements.
            </summary>
            <remarks>
            Set to <c>null</c> apply no filter (i.e., adapter expects all measurements).
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.OutputIsForArchive">
            <summary>
            Returns a flag that determines if measurements sent to this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> are
            destined for archival.
            </summary>
            <remarks>
            This property allows the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/> to calculate statistics on how
            many measurements have been archived per minute. Historians would normally set this property
            to <c>true</c>; other custom exports would set this property to <c>false</c>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.UseAsyncConnect">
            <summary>
            Gets flag that determines if the data output stream connects asynchronously.
            </summary>
            <remarks>
            Derived classes should return true when data output stream connects asynchronously, otherwise return false.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.ConnectionAttemptInterval">
            <summary>
            Gets or sets the connection attempt interval, in milliseconds, for the data output adapter.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.InternalProcessQueue">
            <summary>
            Allows derived class access to internal processing queue.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.  Derived classes should extend status with implementation specific information.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.DebugHostBase">
            <summary>
            Windows form application used to host the time-series framework service.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.DebugHostBase.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.DebugHostBase.ServiceHost">
            <summary>
            Reference to instance of <see cref="T:TimeSeriesFramework.ServiceHostBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.DebugHostBase"/> windows form.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.DebugHostLoading">
            <summary>
            Invoked when the debug host is loading. By default this launches the remote service client.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.DebugHostUnloading">
            <summary>
            Invoked when the debug host is unloading. By default this shuts down the remote service client.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.DebugHostBase.ServiceClientName">
            <summary>
            Gets the executable name of the service client that can remotely access the time-series framework service.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.ActionAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementations.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IActionAdapter">
            <summary>
            Represents thet abstract interface for any action adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IActionAdapter.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues measurements for calculation processing.  Measurements are automatically filters to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for calculation processing.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IActionAdapter.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IActionAdapter.UnpublishedSamples">
            <summary>
            This event is raised every second allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IActionAdapter.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation in
            this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="measurements">New measurements.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.UnpublishedSamples"/> event.
            </summary>
            <param name="unpublishedSamples">Total number of unpublished seconds of data in the queue.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values being discarded.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.InitializeItem(TimeSeriesFramework.Adapters.IActionAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.DisposeItem(TimeSeriesFramework.Adapters.IActionAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> to dispose.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.NewMeasurements">
            <summary>
            This event will be raised when there are new measurements available from the action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.UnpublishedSamples">
            <summary>
            This event is raised every second allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.NamespaceDoc">
            <summary>
            Contains classes that define an adapter interface layer used to route measurements through a cycle of input, sorted actions and queued output.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.InputAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementations.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.InputAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="measurements">New measurements.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.InitializeItem(TimeSeriesFramework.Adapters.IInputAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementation.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.DisposeItem(TimeSeriesFramework.Adapters.IInputAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> to dispose.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.InputAdapterCollection.NewMeasurements">
            <summary>
            This event will be raised when there are new measurements available from the input data source.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase">
            <summary>
            Represents the base class for simple, non-time-aligned, action adapters.
            </summary>
            <remarks>
            This base class acts on incoming measurements, in a non-time-aligned fashion, for general processing. If derived
            class needs time-aligned data for processing, the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/> class should be used instead.
            Derived classes are expected call <see cref="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})"/> for any new measurements that may get created.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.UnpublishedSamples"/> event.
            </summary>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values being discarded.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.UnpublishedSamples">
            <summary>
            This event is raised by derived class, if needed, to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.FramesPerSecond">
            <summary>
            Gets or sets the frames per second to be used by the <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/>.
            </summary>
            <remarks>
            This value is only tracked in the <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/>, derived class will determine its use.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AdapterCommandAttribute">
            <summary>
            Represents an attribute that allows a method in an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> class to be exposed as
            an invokable command.
            </summary>
            <remarks>
            Only public methods will be exposed as invokable.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCommandAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.AdapterCommandAttribute"/> with the specified <paramref name="description"/> value.
            </summary>
            <param name="description">Assigns the description for this adapter command.</param>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCommandAttribute.Description">
            <summary>
            Gets the description of this adapter command.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.NamespaceDoc">
            <summary>
            Contains classes used to abstractly define time-series measured values and provide mechanisms for managing measurements.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.FrameQueue">
            <summary>
            Represents a real-time queue of <see cref="T:TimeSeriesFramework.TrackingFrame"/> instances used by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.#ctor(TimeSeriesFramework.FrameQueue.CreateNewFrameFunction)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.FrameQueue"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.FrameQueue"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.FrameQueue"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Clear">
            <summary>
            Clears the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Pop">
            <summary>
            Removes current <see cref="P:TimeSeriesFramework.FrameQueue.Head"/> frame from the <see cref="T:TimeSeriesFramework.FrameQueue"/> after it has been processed and assigns a new <see cref="P:TimeSeriesFramework.FrameQueue.Head"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.GetFrame(System.Int64)">
            <summary>
            Gets <see cref="T:TimeSeriesFramework.TrackingFrame"/> from the queue with the specified timestamp, in ticks.  If no frame exists for
            the specified timestamp, one will be created.
            </summary>
            <param name="ticks">Timestamp, in ticks, for which to get or create <see cref="T:TimeSeriesFramework.TrackingFrame"/>.</param>
            <remarks>
            Ticks can be any point in time so long time requested is greater than time of last published frame; this queue is
            used in a real-time scenario with time moving forward.  If a frame is requested for an old timestamp, null will
            be returned. Note that frame returned will be "best-fit" for given timestamp based on <see cref="P:TimeSeriesFramework.FrameQueue.FramesPerSecond"/>.
            </remarks>
            <returns>An existing or new <see cref="T:TimeSeriesFramework.TrackingFrame"/> from the queue for the specified timestamp.</returns>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second to be used by <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
            <remarks>
            Valid frame rates are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.DownsamplingMethod">
            <summary>
            Gets or sets the <see cref="T:TimeSeriesFramework.DownsamplingMethod"/> to be used by the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.Head">
            <summary>
            Returns the next <see cref="T:TimeSeriesFramework.IFrame"/> in the <see cref="T:TimeSeriesFramework.FrameQueue"/>, if any.
            </summary>
            <remarks>
            This property is tracked separately from the internal <see cref="T:TimeSeriesFramework.TrackingFrame"/> collection, as a
            result this property may be called at any time without a locking penalty.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.Last">
            <summary>
            Gets the last processed <see cref="T:TimeSeriesFramework.IFrame"/> in the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
            <remarks>
            This property is tracked separately from the internal <see cref="T:TimeSeriesFramework.IFrame"/> collection, as a
            result this property may be called at any time without a locking penalty.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.LastDownsampledMeasurements">
            <summary>
            Gets total number of downsampled measurements from last published frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.Count">
            <summary>
            Returns the total number of frames in the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.DownsamplingMethod">
            <summary>
            Downsampling method enumeration.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.LastReceived">
            <summary>
            Downsamples to the last measurement received.
            </summary>
            <remarks>
            Use this option if no downsampling is needed or the selected value is not critical. This is the fastest option if the incoming and outgoing frame rates match.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.Closest">
            <summary>
            Downsamples to the measurement closest to frame time.
            </summary>
            <remarks>
            This is the typical operation used when performing simple downsampling. This is the fastest option if the incoming frame rate is faster than the outgoing frame rate.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.Filtered">
            <summary>
            Downsamples by applying a user-defined value filter over all received measurements to anti-alias the results.
            </summary>
            <remarks>
            This option will produce the best result but has a processing penalty.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.ConcentratorBase">
            <summary>
            Measurement concentrator base class.
            </summary>
            <remarks>
            <para>
            This class synchronizes (i.e., sorts by timestamp) real-time measurements.
            </para>
            <para>
            Note that your lag time should be defined as it relates to the rate at which data data is coming
            into the concentrator. Make sure you allow enough time for transmission of data over the network
            allowing any needed time for possible network congestion.  Lead time should be defined as your
            confidence in the accuracy of your local clock (e.g., if you set lead time to 2, this means you
            trust that your local clock is within plus or minus 2 seconds of real-time.)
            </para>
            <para>
            This concentrator is designed to sort measurements being transmitted in real-time for data being
            sent at rates of at least 1 sample per second. Slower rates (e.g., once every few seconds) are not
            supported since sorting data at these speeds would be trivial. There is no defined maximum number
            of supported samples per second - but keep in mind that CPU utilization will increase as the
            measurement volume and frame rate increase.
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ConcentratorBase"/>.
            </summary>
            <remarks>
            Concentration will not begin until consumer "Starts" concentrator (i.e., calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>).
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.#ctor(System.Int32,System.Double,System.Double)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ConcentratorBase"/> from specified parameters.
            </summary>
            <param name="framesPerSecond">Number of frames to publish per second.</param>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
            <remarks>
            <para>
            <paramref name="framesPerSecond"/> must be greater then 0.
            </para>
            <para>
            <paramref name="lagTime"/> must be greater than zero, but can be specified in sub-second intervals (e.g., set to .25 for a quarter-second lag time).
            Note that this defines time sensitivity to past timestamps.
            </para>
            <para>
            <paramref name="leadTime"/> must be greater than zero, but can be specified in sub-second intervals (e.g., set to .5 for a half-second lead time).
            Note that this defines time sensitivity to future timestamps.
            </para>
            <para>
            Concentration will not begin until consumer "Starts" concentrator (i.e., calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>).
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Specified argument is outside of allowed value range (see remarks).</exception>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Start">
            <summary>
            Starts the concentrator, if it is not already running.
            </summary>
            <remarks>
            Concentrator must be started by calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>) before concentration will begin.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Stop">
            <summary>
            Stops the concentrator.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.ResetStatistics">
            <summary>
            Resets the statistics of the concentrator.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.SecondsFromRealTime(TVA.Ticks)">
            <summary>
            Returns the deviation, in seconds, that the given number of ticks is from real-time (i.e., <see cref="P:TimeSeriesFramework.ConcentratorBase.RealTime"/>).
            </summary>
            <param name="timestamp">Timestamp to calculate distance from real-time.</param>
            <returns>A <see cref="T:System.Double"/> value indicating the deviation, in seconds, from real-time.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.MillisecondsFromRealTime(TVA.Ticks)">
            <summary>
            Returns the deviation, in milliseconds, that the given number of ticks is from real-time (i.e., <see cref="P:TimeSeriesFramework.ConcentratorBase.RealTime"/>).
            </summary>
            <param name="timestamp">Timestamp to calculate distance from real-time.</param>
            <returns>A <see cref="T:System.Double"/> value indicating the deviation in milliseconds.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.SortMeasurement(TimeSeriesFramework.IMeasurement)">
            <summary>
            Sorts the <see cref="T:TimeSeriesFramework.IMeasurement"/> placing the data point in its proper <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> to sort.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.SortMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Sorts each <see cref="T:TimeSeriesFramework.IMeasurement"/> placing each data point in its proper <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <param name="measurements">Collection of <see cref="T:TimeSeriesFramework.IMeasurement"/>'s to sort.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:TimeSeriesFramework.IFrame"/> of time-aligned collection of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:TimeSeriesFramework.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:TimeSeriesFramework.IFrame"/> within a second ranging from zero to <c><see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
            <remarks>
            If user implemented publication function consistently exceeds available publishing time (i.e., <c>1 / <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/></c> seconds),
            concentration will fall behind. A small amount of this time is required by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> for processing overhead, so actual total time
            available for user function process will always be slightly less than <c>1 / <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/></c> seconds.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.CreateNewFrame(TVA.Ticks)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.IFrame"/> for the given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp for new <see cref="T:TimeSeriesFramework.IFrame"/> in <see cref="T:TVA.Ticks"/>.</param>
            <returns>New <see cref="T:TimeSeriesFramework.IFrame"/> at given <paramref name="timestamp"/>.</returns>
            <remarks>
            Derived classes can override this method to create a new custom <see cref="T:TimeSeriesFramework.IFrame"/>. Default
            behavior creates a basic <see cref="T:TimeSeriesFramework.Frame"/> to hold synchronized measurements.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.AssignMeasurementToFrame(TimeSeriesFramework.IFrame,TimeSeriesFramework.IMeasurement)">
            <summary>
            Assigns <see cref="T:TimeSeriesFramework.IMeasurement"/> to its associated <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <returns>True if <see cref="T:TimeSeriesFramework.IMeasurement"/> was successfully assigned to its <see cref="T:TimeSeriesFramework.IFrame"/>.</returns>
            <remarks>
            <para>
            Derived classes can choose to override this method to handle custom assignment of a <see cref="T:TimeSeriesFramework.IMeasurement"/> to
            its <see cref="T:TimeSeriesFramework.IFrame"/>. Default behavior simply assigns measurement to frame's keyed measurement dictionary.
            </para>
            <example>
            If overridden user must perform their own synchronization as needed, for example:
            <code>
            lock (frame.Measurements)
            {
                if (!frame.Published)
                {
                    frame.Measurements[measurement.Key] = measurement;
                    return true;
                }
                
                return false;
            }
            </code>
            </example>
            <para>
            Note that the <see cref="P:TimeSeriesFramework.IFrame.Measurements"/> dictionary is used internally to synchrnonize assignment
            of the <see cref="P:TimeSeriesFramework.IFrame.Published"/> flag. If your custom <see cref="T:TimeSeriesFramework.IFrame"/> makes use of the
            <see cref="P:TimeSeriesFramework.IFrame.Measurements"/> dictionary you must implement a locking scheme similar to the sample
            code to prevent changes to the measurement dictionary during frame publication.
            </para>
            </remarks>
            <param name="frame">The <see cref="T:TimeSeriesFramework.IFrame"/> that is used.</param>
            <param name="measurement">The type of <see cref="T:TimeSeriesFramework.IMeasurement"/> to use."/&gt;</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.OnProcessException(System.Exception)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.ConcentratorBase.ProcessException"/> event.
            </summary>
            <param name="ex">Exception to send to <see cref="E:TimeSeriesFramework.ConcentratorBase.ProcessException"/> event.</param>
            <remarks>
            Allows derived classes to raise a processing exception.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.ConcentratorBase.UnpublishedSamples"/> event.
            </summary>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.ConcentratorBase.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values being discarded.</param>
            <remarks>
            Allows derived classes to raise a discarding measurements event.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.UnpublishedSamples">
            <summary>
            This event is raised every second allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.ProcessException">
            <summary>
            This event is raised if there is an exception encountered while attempting to process a frame in the sample queue.
            </summary>
            <remarks>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered while parsing the data stream.
            </para>
            <para>
            Processing will not stop for any exceptions thrown by the user function, but any captured exceptions will be exposed through this event.
            </para>
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.Disposed">
            <summary>
            This event is raised when <see cref="T:TimeSeriesFramework.ConcentratorBase"/> is disposed.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.LagTimeUpdated">
            <summary>
            Raised, for the benefit of dependent classes, when lag time is updated.
            </summary> 
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.LeadTimeUpdated">
            <summary>
            Raised, for the benefit of dependent classes, when lead time is updated.
            </summary> 
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LagTicks">
            <summary>
            Gets defined past time deviation tolerance, in ticks.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TrackLatestMeasurements">
            <summary>
            Gets or sets flag to start tracking the absolute latest received measurement values.
            </summary>
            <remarks>
            Lastest received measurement value will be available via the <see cref="P:TimeSeriesFramework.ConcentratorBase.LatestMeasurements"/> property.
            Note that enabling this option will slightly increase the required sorting time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LatestMeasurements">
            <summary>
            Gets reference to the collection of absolute latest received measurement values.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LastFrame">
            <summary>
            Gets reference to the last published <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second.
            </summary>
            <remarks>
            Valid frame rates for a <see cref="T:TimeSeriesFramework.ConcentratorBase"/> are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
            <remarks>
            <list type="table">
                <listheader>
                    <term>Desired maximum resolution</term>
                    <description>Value to assign</description>
                </listheader>
                <item>
                    <term>Seconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/></description>
                </item>
                <item>
                    <term>Milliseconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerMillisecond"/></description>
                </item>
                <item>
                    <term>Microseconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerMicrosecond"/></description>
                </item>
                <item>
                    <term>100-Nanoseconds</term>
                    <description>0</description>
                </item>
            </list>
            Assigning values less than zero will be set to zero since minimum possible concentrator resolution is one tick (100-nanoseconds). Assigning
            values values greater than <see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/> will be set to <see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/>
            since maximum possible concentrator resolution is one second (i.e., 1 frame per second).
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.DownsamplingMethod">
            <summary>
            Gets or sets the <see cref="T:TimeSeriesFramework.DownsamplingMethod"/> to be used by the concentrator.
            </summary>
            <remarks>
            The downsampling method determines the algorithm to use if input is being received at a higher-resolution than the defined output.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TicksPerFrame">
            <summary>
            Gets the number of ticks per frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ExpectedMeasurements">
            <summary>
            Gets or sets the expected number of measurements to be assigned to a single frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.AllowPreemptivePublishing">
            <summary>
            Gets or sets flag that allows system to preemptively publish frames assuming all <see cref="P:TimeSeriesFramework.ConcentratorBase.ExpectedMeasurements"/> have arrived.
            </summary>
            <remarks>
            In order for this property to used, the <see cref="P:TimeSeriesFramework.ConcentratorBase.ExpectedMeasurements"/> must be defined.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.PerformTimestampReasonabilityCheck">
            <summary>
            Gets or sets flag that determines if timestamp reasonability checks should be performed on incoming
            measurements (i.e., measurement timestamps are compared to system clock for reasonability using
            <see cref="P:TimeSeriesFramework.ConcentratorBase.LeadTime"/> tolerance).
            </summary>
            <remarks>
            Setting this value to false will make the concentrator use the latest value received as "real-time"
            without validation; this is not recommended in production since time reported by source devices may
            be grossly incorrect. For non-production configurations, setting this value to false will allow
            concentration of historical data.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.Enabled">
            <summary>
            Gets or sets the current enabled state of concentrator.
            </summary>
            <returns>Current enabled state of concentrator</returns>
            <remarks>
            Concentrator must be started by calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>) before concentration will begin.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.StartTime">
            <summary>
            Gets the UTC time the concentrator was started.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.StopTime">
            <summary>
            Gets the UTC time the concentrator was stopped.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the concentrator has been active.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.IgnoreBadTimestamps">
            <summary>
            Gets or sets flag that determines if bad timestamps (as determined by measurement's timestamp quality)
            should be ignored when sorting measurements.
            </summary>
            <remarks>
            Setting this property to <c>true</c> forces system to use timestamps as-is without checking quality.
            If this property is <c>true</c>, it will supercede operation of <see cref="P:TimeSeriesFramework.ConcentratorBase.AllowSortsByArrival"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.AllowSortsByArrival">
            <summary>
            Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps
            to be sorted by arrival time.
            </summary>
            <remarks>
            Value defaults to <c>true</c>, so any incoming measurement with a bad timestamp quality will be sorted
            according to its arrival time. Setting the property to <c>false</c> will cause all measurements with a
            bad timestamp quality to be discarded. This property will only be considered when
            <see cref="P:TimeSeriesFramework.ConcentratorBase.IgnoreBadTimestamps"/> is <c>false</c>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether or not to use the local clock time as real time.
            </summary>
            <remarks>
            Use your local system clock as real time only if the time is locally GPS-synchronized,
            or if the measurement values being sorted were not measured relative to a GPS-synchronized clock.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.RealTime">
            <summary>
            Gets the the most accurate time value that is available. If <see cref="P:TimeSeriesFramework.ConcentratorBase.UseLocalClockAsRealTime"/> = <c>true</c>, then
            this function will return <see cref="P:System.DateTime.UtcNow"/>. Otherwise, this function will return the timestamp of the
            most recent measurement, or <see cref="P:System.DateTime.UtcNow"/> if no measurement timestamps are within time deviation
            tolerances as specified by the <see cref="P:TimeSeriesFramework.ConcentratorBase.LeadTime"/> value.
            </summary>
            <remarks>
            Because the measurements being received by remote devices are often measured relative to GPS time, these timestamps
            are typically more accurate than the local clock. As a result, we can use the latest received timestamp as the best
            local time measurement we have (ignoring transmission delays); but, even these times can be incorrect so we still have
            to apply reasonability checks to these times. To do this, we use the local system time and the <see cref="P:TimeSeriesFramework.ConcentratorBase.LeadTime"/>
            value to validate the latest measured timestamp. If the newest received measurement timestamp gets too old or creeps
            too far into the future (both validated + and - against defined lead time property value), we will fall back on local
            system time. Note that this creates a dependency on a fairly accurate local clock - the smaller the lead time deviation
            tolerance, the better the needed local clock accuracy. For example, a lead time deviation tolerance of a few seconds
            might only require keeping the local clock synchronized to an NTP time source; but, a sub-second tolerance would
            require that the local clock be very close to GPS time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ReceivedMeasurements">
            <summary>
            Gets the total number of measurements ever requested for sorting.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements successfully sorted.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.DiscardedMeasurements">
            <summary>
            Gets the total number of measurements that have been discarded because of old timestamps
            (i.e., measurements that were outside the time deviation tolerance from base time, past or future).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LastDiscardedMeasurement">
            <summary>
            Gets a reference the last <see cref="T:TimeSeriesFramework.IMeasurement"/> that was discarded by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.PublishedMeasurements">
            <summary>
            Gets the total number of published measurements.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.PublishedFrames">
            <summary>
            Gets the total number of published frames.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.MeasurementsSortedByArrival">
            <summary>
            Gets the total number of measurements that were sorted by arrival because the measurement reported a bad timestamp quality.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.DownsampledMeasurements">
            <summary>
            Gets the total number of downsampled measurements processed by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.MissedSortsByTimeout">
            <summary>
            Gets the total number of missed sorts by timeout processed by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FramesAheadOfSchedule">
            <summary>
            Gets the total number of frames ahead of schedule processed by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TotalPublicationTime">
            <summary>
            Gets the total number of seconds frames have spent in the publication process since concentrator started.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.AveragePublicationTimePerFrame">
            <summary>
            Gets the average required frame publication time, in seconds.
            </summary>
            <remarks>
            If user publication function, <see cref="M:TimeSeriesFramework.ConcentratorBase.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)"/>, consistently exceeds available publishing time
            (i.e., <c>1 / <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/></c>), concentration will fall behind.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.Status">
            <summary>
            Gets current detailed state and status of concentrator for display purposes.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer">
            <summary>
            Frame rate timer.
            </summary>
            <remarks>
            One static instance of this internal class is created per encountered frame rate.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.#ctor(System.Int32)">
            <summary>
            Create a new <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> class.
            </summary>
            <param name="framesPerSecond">Desired frame rate for <see cref="T:TVA.PrecisionTimer"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.AddReference(System.EventHandler)">
            <summary>
            Adds a reference to this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
            <param name="tickFunction">Tick function to add to event list.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.RemoveReference(System.EventHandler)">
            <summary>
            Removes a reference to this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
            <param name="tickFunction">Tick function to remove from event list.</param>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Timer">
            <summary>
            Gets <see cref="T:TVA.PrecisionTimer"/> instance for this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.FramesPerSecond">
            <summary>
            Gets frames per second for this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.FramePeriods">
            <summary>
            Gets array of frame periods for this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.ReferenceCount">
            <summary>
            Gets reference count for this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.ServerCommand">
            <summary>
            <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> server commands.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.Subscribe">
            <summary>
            Subscribe command.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.Unsubscribe">
            <summary>
            Unsubscribe command.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.QueryPoints">
            <summary>
            Query points command.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.ServerResponse">
            <summary>
            <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> server responses.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.Succeeded">
            <summary>
            Command succeeded response.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.Failed">
            <summary>
            Command failed response.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.DataPacket">
            <summary>
            Data packet response.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.DataPacketFlags">
            <summary>
            <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> data packet flags.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.Synchronized">
            <summary>
            Determines if data packet is synchronized. Bit set = synchronized, bit clear = unsynchronized.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.Compact">
            <summary>
            Determines if serialized measurement is compact. Bit set = compact, bit clear = full fidelity.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.NoFlags">
            <summary>
            No flags set. This would represent unsynchronized, full fidelity measurement data packets.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.DataPublisher">
            <summary>
            Represents a data publishing server that allows multiple connections for data subscriptions.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Initialize">
            <summary>
            Intializes <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Start">
            <summary>
            Establish <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and start listening for client connections.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Stop">
            <summary>
            Terminate <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and stop listening for client connections.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="!:CommonPhasorServices"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="!:CommonPhasorServices"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.DisposeItem(TimeSeriesFramework.Adapters.IActionAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> to dispose.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand)">
            <summary>
            Sends response back to specified client.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand,System.String)">
            <summary>
            Sends response back to specified client with a message.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="status">Status message to return.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand,System.String,System.Object[])">
            <summary>
            Sends response back to specified client with a formatted message.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="formattedStatus">Formatted status message to return.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand,System.Byte[])">
            <summary>
            Sends response back to specified client with attached data.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="data">Data to return to client; null if none.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.Status">
            <summary>
            Gets the status of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.Name">
            <summary>
            Gets or sets the name of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <remarks>
            The assigned name is used as the settings category when persisting the TCP server settings.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.IClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client identifier of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.IClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.IClientSubscription"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.ActionAdapterBase">
            <summary>
            Represents the base class for action adapters.
            </summary>
            <remarks>
            This base class acts as a measurement concentrator which time aligns all incoming measurements for proper processing.
            Derived classes are expected to override <see cref="M:TimeSeriesFramework.ConcentratorBase.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)"/> to handle time aligned measurements
            and call <see cref="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})"/> for any new measurements that may get created.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Stop">
            <summary>
            Stops the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.ResetStatistics">
            <summary>
            Resets the statistics of the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.SetInitializedState(System.Boolean)">
            <summary>
            Manually sets the intialized state of the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="initialized">Desired initialized state.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
            <remarks>
            Measurement is filtered against the defined <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.IsInputMeasurement(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </summary>
            <param name="item">Primary key of measurement to find.</param>
            <returns>true if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the <see cref="P:System.Threading.Thread.CurrentThread"/> until the action adapter is <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.TryGetMinimumNeededMeasurements(TimeSeriesFramework.IFrame,TimeSeriesFramework.IMeasurement[]@)">
            <summary>
            Attempts to retrieve the minimum needed number of measurements from the frame (as specified by MinimumMeasurementsToUse)
            </summary>
            <param name="frame">Source frame for the measurements</param>
            <param name="measurements">Return array of measurements</param>
            <returns>True if minimum needed number of measurements were returned in measurement array</returns>
            <remarks>
            <para>
            Remember this function will *only* return the minimum needed number of measurements, no more.  If you want to use
            all available measurements in your adapter you should just use Frame.Measurements.Values directly.
            </para>
            <para>
            Note that the measurements array parameter will be created if the reference is null, otherwise if caller creates
            array it must be sized to MinimumMeasurementsToUse
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterBase.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to action adapter.
            </summary>
            <remarks>
            <para>
            Example connection string using manually defined measurements:<br/>
            <c>framesPerSecond=30; lagTime=1.0; leadTime=0.5; minimumMeasurementsToUse=-1;
            useLocalClockAsRealTime=true; allowSortsByArrival=false;</c><br/>
            <c>inputMeasurementKeys={P1:1245;P1:1247;P2:1335};</c><br/>
            <c>outputMeasurements={P3:1345,60.0,1.0;P3:1346;P3:1347}</c><br/>
            When defined manually, elements in key:<br/>
            * inputMeasurementKeys are defined as "ArchiveSource:PointID"<br/>
            * outputMeasurements are defined as "ArchiveSource:PointID,Adder,Multiplier", the adder and multiplier are optional
            defaulting to 0.0 and 1.0 respectively.
            <br/>
            </para>
            <para>
            Example connection string using measurements defined in a <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.DataSource"/> table:<br/>
            <c>framesPerSecond=30; lagTime=1.0; leadTime=0.5; minimumMeasurementsToUse=-1;
            useLocalClockAsRealTime=true; allowSortsByArrival=false;</c><br/>
            <c>inputMeasurementKeys={FILTER ActiveMeasurements WHERE Company='TVA' AND SignalType='FREQ' ORDER BY ID};</c><br/>
            <c>outputMeasurements={FILTER ActiveMeasurements WHERE SignalType IN ('IPHA','VPHA') AND Phase='+'}</c><br/>
            <br/>
            Basic filtering syntax is as follows:<br/>
            <br/>
                {FILTER &lt;TableName&gt; WHERE &lt;Expression&gt; [ORDER BY &lt;SortField&gt;]}<br/>
            <br/>
            Source tables are expected to have at least the following fields:<br/>
            <list type="table">
                <listheader>
                    <term>Name</term>
                    <term>Type</term>
                    <description>Description.</description>
                </listheader>
                <item>
                    <term>ID</term>
                    <term>NVARCHAR</term>
                    <description>Measurement key formatted as: ArchiveSource:PointID.</description>
                </item>
                <item>
                    <term>PointTag</term>
                    <term>NVARCHAR</term>
                    <description>Point tag of measurement.</description>
                </item>
                <item>
                    <term>Adder</term>
                    <term>FLOAT</term>
                    <description>Adder to apply to value, if any (default to 0.0).</description>
                </item>
                <item>
                    <term>Multiplier</term>
                    <term>FLOAT</term>
                    <description>Multipler to apply to value, if any (default to 1.0).</description>
                </item>
            </list>
            </para>
            <para>
            Note that framesPerSecond, lagTime and leadTime are required parameters, all other parameters are optional.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the action adapter will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the action adapter expects.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.MinimumMeasurementsToUse">
            <summary>
            Gets or sets minimum number of input measurements required for adapter.  Set to -1 to require all.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Name">
            <summary>
            Gets name of the action adapter.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ID">
            <summary>
            Gets or sets numeric ID associated with this action adapter.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Initialized">
            <summary>
            Gets or sets flag indicating if the action adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Status">
            <summary>
            Returns the detailed status of the action adapter.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.#ctor(TimeSeriesFramework.Transport.DataPublisher,System.Guid)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription"/>.
            </summary>
            <param name="parent">Reference to parent.</param>
            <param name="clientID"></param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:TimeSeriesFramework.IFrame"/> of time-aligned collection of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:TimeSeriesFramework.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:TimeSeriesFramework.IFrame"/> within a second ranging from zero to <c><see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
            <remarks>
            Measurement is filtered against the defined <see cref="P:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dynamic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dynamic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client identifier of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription"/> expects, if any.
            </summary>
            <remarks>
            We override method so assignment can be synchronized such that dynamic updates won't interfere
            with filtering in <see cref="M:TimeSeriesFramework.Transport.DataPublisher.SynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})"/>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.#ctor(TimeSeriesFramework.Transport.DataPublisher,System.Guid)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription"/>.
            </summary>
            <param name="parent">Reference to parent.</param>
            <param name="clientID"></param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
            <remarks>
            Measurement is filtered against the defined <see cref="P:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dyanmic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dyanmic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client identifier of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription"/> expects, if any.
            </summary>
            <remarks>
            We override method so assignment can be synchronized such that dynamic updates won't interfere
            with filtering in <see cref="M:TimeSeriesFramework.Transport.DataPublisher.UnsynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})"/>.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.TrackingFrame">
            <summary>
            <see cref="T:TimeSeriesFramework.IFrame"/> container used to track <see cref="T:TimeSeriesFramework.IMeasurement"/> values for downsampling.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TrackingFrame.#ctor(TimeSeriesFramework.IFrame,TimeSeriesFramework.DownsamplingMethod)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.TrackingFrame"/> given the specified parameters.
            </summary>
            <param name="sourceFrame">Source <see cref="T:TimeSeriesFramework.IFrame"/> to track.</param>
            <param name="downsamplingMethod"><see cref="T:TimeSeriesFramework.DownsamplingMethod"/> to apply.</param>
        </member>
        <member name="M:TimeSeriesFramework.TrackingFrame.DeriveMeasurementValue(TimeSeriesFramework.IMeasurement)">
            <summary>
            Derives measurement value, downsampling if needed.
            </summary>
            <param name="measurement">New <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <returns>New derived <see cref="T:TimeSeriesFramework.IMeasurement"/> value, or null if value should not be assigned to <see cref="T:TimeSeriesFramework.IFrame"/>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.SourceFrame">
            <summary>
            Gets instance of <see cref="T:TimeSeriesFramework.IFrame"/> being tracked.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.Timestamp">
            <summary>
            Gets timestamp of <see cref="T:TimeSeriesFramework.IFrame"/> being tracked.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.DownsampledMeasurements">
            <summary>
            Total number of measurements downsampled by <see cref="T:TimeSeriesFramework.TrackingFrame"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementValueFilterFunction">
            <summary>
            Method signature for function used to apply a value filter over a sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values over which to apply filter.</param>
            <returns>Result of filter applied to sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.</returns>
        </member>
        <member name="T:TimeSeriesFramework.ImmediateMeasurements">
            <summary>
            Represents the absolute latest measurement values received by a <see cref="T:TimeSeriesFramework.ConcentratorBase"/> implementation.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.TaggedMeasurementKeys(System.String)">
            <summary>Returns measurement key list of specified tag, if it exists.</summary>
            <param name="tag">A <see cref="T:System.String"/> that indicates the tag to use.</param>
            <returns>A collection of measurement keys.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.UpdateMeasurementValue(TimeSeriesFramework.IMeasurement)">
            <summary>We only store a new measurement value that is newer than the cached value.</summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Measurement(System.UInt32,System.String)">
            <summary>Retrieves the specified immediate temporal measurement, creating it if needed.</summary>
            <param name="measurementID">An <see cref="T:System.UInt32"/> representing the measurement id.</param>
            <param name="source">A <see cref="T:System.String"/> indicating the source.</param>
            <returns>A <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Measurement(TimeSeriesFramework.MeasurementKey)">
            <summary>Retrieves the specified immediate temporal measurement, creating it if needed.</summary>
            <param name="key">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> object indicating the key to use.</param>
            <returns>A <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.DefineTaggedMeasurements(System.Data.DataTable)">
            <summary>Defines tagged measurements from a data table.</summary>
            <remarks>Expects tag field to be aliased as "Tag", measurement ID field to be aliased as "ID" and source field to be aliased as "Source".</remarks>
            <param name="taggedMeasurements">A <see cref="T:System.Data.DataTable"/> to use for defining the tagged measurements.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.AddTaggedMeasurement(System.String,TimeSeriesFramework.MeasurementKey)">
            <summary>Associates a new measurement ID with a tag, creating the new tag if needed.</summary>
            <remarks>Allows you to define "grouped" points so you can aggregate certain measurements.</remarks>
            <param name="key">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> to associate with the tag.</param>
            <param name="tag">A <see cref="T:System.String"/> to represent the key.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.CalculateAverage(System.Int32@)">
            <summary>Calculates an average of all measurements.</summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
            <param name="count">An <see cref="T:System.Int32"/> value to get the count of values averaged.</param>
            <returns>A <see cref="T:System.Double"/> value representing the average of the measurements.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.CalculateTagAverage(System.String,System.Int32@)">
            <summary>Calculates an average of all measurements associated with the specified tag.</summary>
            <param name="count">An <see cref="T:System.Int32"/> value to get the count of values averaged.</param>
            <param name="tag">The type of measurements to average.</param>
            <returns>A <see cref="T:System.Double"/> value representing the average of the tags.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.TagMinimum(System.String)">
            <summary>Returns the minimum value of all measurements associated with the specified tag.</summary>
            <returns>A <see cref="T:System.Double"/> value representing the tag minimum.</returns>
            <param name="tag">The tag group to evaluate.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.TagMaximum(System.String)">
            <summary>Returns the maximum value of all measurements associated with the specified tag.</summary>
            <returns>A <see cref="T:System.Double"/> value representing the tag maximum.</returns>
            <param name="tag">The tag group to evaluate.</param>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Item(System.UInt32,System.String)">
            <summary>We retrieve adjusted measurement values within time tolerance of concentrator real-time.</summary>
            <param name="measurementID">An <see cref="T:System.UInt32"/> representing the measurement id.</param>
            <param name="source">A <see cref="T:System.String"/> indicating the source.</param>
            <returns>A <see cref="T:System.Double"/> representing the adjusted measurement value.</returns>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Item(TimeSeriesFramework.MeasurementKey)">
            <summary>We retrieve adjusted measurement values within time tolerance of concentrator real-time.</summary>
            <param name="key">An <see cref="T:TimeSeriesFramework.MeasurementKey"/> representing the measurement key.</param>
            <returns>A <see cref="T:System.Double"/> representing the adjusted measurement value.</returns>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.MeasurementKeys">
            <summary>Returns key collection of measurement keys.</summary>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Tags">
            <summary>Returns key collection for measurement tags.</summary>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Minimum">
            <summary>Returns the minimum value of all measurements.</summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Maximum">
            <summary>Returns the maximum value of all measurements.</summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
        </member>
    </members>
</doc>
